<html>
	<head>
		<meta charset="utf-8"></meta>
		<title>BScrollWidget</title>
		<link href="./style.css" rel="stylesheet" type="text/css"/>
	</head>
	<body>
		<div class="class" name="BScrollWidget">
			<h1>BScrollWidget</h1>
			<p>继承自<a href="BScrollArea.html">BScrollArea</a></p>
			<p id="resume">BScrollWidget是滚动控件，基于滚动区域（BScrollArea）横向或纵向管理若干子控件。<a href="#desc">详细</a></p><h2>public</h2>
			<table id="public">
				<tr><td align="right"/><td><a href="#BScrollWidget(BWidget*)">BScrollWidget</a>(BWidget* parent = 0);</td></tr>
				<tr><td align="right"/><td><a href="#BScrollWidget(const BString&,BWidget*)">BScrollWidget</a>(const BString&amp; title, BWidget* parent = 0);</td></tr>
				<tr><td align="right"/><td><a href="#BScrollWidget(Orientation,BWidget*)">BScrollWidget</a>(Orientation orientation, BWidget* parent = 0);</td></tr>
				<tr><td align="right"/><td><a href="#~BScrollWidget()">~BScrollWidget</a>();</td></tr>
				<tr><td align="right">void </td><td><a href="#setOrientation(Orientation)">setOrientation</a>(Orientation orientation);</td></tr>
				<tr><td align="right">Orientation </td><td><a href="#orientation() const">orientation</a>() const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#addWidget(BWidget*,float)">addWidget</a>(BWidget* widget, float stretch = -1.0f);</td></tr>
				<tr><td align="right">bool </td><td><a href="#insertWidget(int, BWidget*,float)">insertWidget</a>(int index, BWidget* widget, float stretch = -1.0f);</td></tr>
				<tr><td align="right">bool </td><td><a href="#removeWidget(BWidget*)">removeWidget</a>(BWidget* widget);</td></tr>
				<tr><td align="right">bool </td><td><a href="#removeWidget(int)">removeWidget</a>(int index);</td></tr>
				<tr><td align="right">bool </td><td><a href="#clearWidgets()">clearWidgets</a>();</td></tr>
				<tr><td align="right">int </td><td><a href="#index(const BWidget*) const">index</a>(const BWidget* widget) const;</td></tr>
				<tr><td align="right">int </td><td><a href="#widgetCount() const">widgetCount</a>() const;</td></tr>
				<tr><td align="right">BWidget* </td><td><a href="#widget(int)">widget</a>(int index);</td></tr>
				<tr><td align="right">const BWidget* </td><td><a href="#widget(int) const">widget</a>(int index) const;</td></tr>
				<tr><td align="right">BWidget* </td><td><a href="#widget(const BString&)">widget</a>(const BString&amp; name);</td></tr>
				<tr><td align="right">const BWidget* </td><td><a href="#widget(const BString&) const">widget</a>(const BString&amp; name) const;</td></tr>
				<tr><td align="right">BWidget* </td><td><a href="#widgetOfAsset(const BValue&)">widgetOfAsset</a>(const BValue&amp; asset);</td></tr>
				<tr><td align="right">const BWidget* </td><td><a href="#widgetOfAsset(const BValue&) const">widgetOfAsset</a>(const BValue&amp; asset) const;</td></tr>
				<tr><td align="right">bool </td><td><a href="#setWidgetStretch(BWidget*, float)">setWidgetStretch</a>(BWidget* widget, float stretch);</td></tr>
				<tr><td align="right">float </td><td><a href="#widgetStretch(const BWidget*) const">widgetStretch</a>(const BWidget* widget) const;</td></tr>
			</table>
			<h2>protected</h2>
			<table id="protected">
				<tr><td align="right">virtual void </td><td><a href="#scrolling(Orientation)">scrolling</a>(Orientation orientation);</td></tr>
			</table>
			<h2>protected</h2>
			<table id="protected">
				<tr><td align="right">virtual void </td><td><a href="#resizeEvent(const BEvent&)">resizeEvent</a>(const BEvent&amp; event);</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#styleEvent(const BEvent&)">styleEvent</a>(const BEvent&amp; event);</td></tr>
				<tr><td align="right">virtual void </td><td><a href="#freshEvent(const BEvent&)">freshEvent</a>(const BEvent&amp; event);</td></tr>
			</table>
			<div id="desc">
				<h2>详细介绍：</h2>
				<p>BScrollWidget是滚动控件，基于滚动区域（BScrollArea）横向或纵向管理若干子控件。</p><p>滚动控件使用一个自由布局器对内容控件进行组织。使用方法setOrientation()方法设置布局方向时，滚动控件会对应生成横向或纵向布局器。可用的方向值有两个：Orientation_Horizontal, Orientation_Vertical。此布局器会被命名为"area"。</p><p>默认的布局方向为纵向。</p><p>当添加一个控件为内容控件时，也就使之成为子控件，且会使其浮动属性为false。</p><p>移除控件时会将其从内容布局器中删除，同时也就不再是此滚动控件的子控件了。</p><h4>信号表：</h4><table>
					<tr><td>Signal_OrientationChanged</td><td>当布局方向改变时发出，值为：Orientation orientation。</td></tr>
					<tr><td>Signal_ItemInserted</td><td>当添加了新的内容控件时发出，值为：BWidget* widget。</td></tr>
					<tr><td>Signal_ItemRemoved</td><td>当移除了一个内容控件时发出，值为：BWidget* widget。</td></tr></table>
			</div>
			<h2 id="docs">成员文档：</h2>
			<div id="BScrollWidget(BWidget*)">
				<h3>BScrollWidget(BWidget* parent = 0);</h3>
				<p>构造一个滚动控件，parent指定其父控件。</p>
			</div>
			<div id="BScrollWidget(const BString&,BWidget*)">
				<h3>BScrollWidget(const BString&amp; title, BWidget* parent = 0);</h3>
				<p>构造一个滚动控件，title指定其标题文本，parent指定其父控件。</p>
			</div>
			<div id="BScrollWidget(Orientation,BWidget*)">
				<h3>BScrollWidget(Orientation orientation, BWidget* parent = 0);</h3>
				<p>构造一个滚动控件，orientation指定布局方向，parent指定其父控件。</p>
			</div>
			<div id="~BScrollWidget()">
				<h3>~BScrollWidget();</h3>
				<p>析构一个滚动控件。</p>
			</div>
			<div id="setOrientation(Orientation)">
				<h3>void setOrientation(Orientation orientation);</h3>
				<p>设置布局方向，可用的方向值有两个：Orientation_Horizontal或Orientation_Vertical。</p>
			</div>
			<div id="orientation() const">
				<h3>Orientation orientation() const;</h3>
				<p>获得布局方向。</p>
			</div>
			<div id="addWidget(BWidget*,float)">
				<h3>bool addWidget(BWidget* widget, float stretch = -1.0f);</h3>
				<p>添加一个内容控件，stretch指定其弹性值。此方法与BHBoxLayout和BVBoxLayout的方法一致。</p>
			</div>
			<div id="insertWidget(int, BWidget*,float)">
				<h3>bool insertWidget(int index, BWidget* widget, float stretch = -1.0f);</h3>
				<p>向index索引位置插入一个内容控件，stretch指定其弹性值。此方法与BHBoxLayout和BVBoxLayout的方法一致。</p>
			</div>
			<div id="removeWidget(BWidget*)">
				<h3>bool removeWidget(BWidget* widget);</h3>
				<p>移除一个内容控件，相当于删除一个子控件。</p>
			</div>
			<div id="removeWidget(int)">
				<h3>bool removeWidget(int index);</h3>
				<p>移除index索引位置的内空控件。</p>
			</div>
			<div id="clearWidgets()">
				<h3>bool clearWidgets();</h3>
				<p>清除所有内容控件。</p>
			</div>
			<div id="index(const BWidget*) const">
				<h3>int index(const BWidget* widget) const;</h3><p>获得指定的控件的索引位置。</p>
			</div>
			<div id="widgetCount() const">
				<h3>int widgetCount() const;</h3><p>获得内容控件的个数。</p>
			</div>
			<div id="widget(int)">
				<h3>BWidget* widget(int index);</h3><p>获得index索引位置的的内容控件。</p>
			</div>
			<div id="widget(int) const">
				<h3>const BWidget* widget(int index) const;</h3><p>获得index索引位置的的内容控件。</p>
			</div>
			<div id="widget(const BString&)">
				<h3>BWidget* widget(const BString&amp; name);</h3><p>获得名称为name的内容控件。</p>
			</div>
			<div id="widget(const BString&) const">
				<h3>const BWidget* widget(const BString&amp; name) const;</h3><p>获得名称为name的内容控件。</p>
			</div>
			<div id="widgetOfAsset(const BValue&)">
				<h3>BWidget* widgetOfAsset(const BValue&amp; asset);</h3><p>获得资产为asset的内容控件。</p>
			</div>
			<div id="widgetOfAsset(const BValue&) const">
				<h3>const BWidget* widgetOfAsset(const BValue&amp; asset) const;</h3><p>获得资产为asset的内容控件。</p>
			</div>
			<div id="setWidgetStretch(BWidget*, float)">
				<h3>bool setWidgetStretch(BWidget* widget, float stretch);</h3><p>设置指定内容控件的布局弹性值，此值会施加于内容布局器。</p>
			</div>
			<div id="widgetStretch(const BWidget*) const">
				<h3>float widgetStretch(const BWidget* widget) const;</h3><p>获得指定内容控件的布局弹性值。</p>
			</div>
			<div id="scrolling(Orientation)">
				<h3>virtual void scrolling(Orientation orientation);</h3><p>滚动页面时重新调整内容布局。</p>
			</div>
			<div id="resizeEvent(const BEvent&)">
				<h3>virtual void resizeEvent(const BEvent&amp; event);</h3><p>尺寸改变时将内容布局器标记为需要调整状态。</p>
			</div>
			<div id="styleEvent(const BEvent&)">
				<h3>virtual void styleEvent(const BEvent&amp; event);</h3><p>样式表取值：</p><table>
					<tr><td>Value_Orientation</td><td>取值为内容布局的方向，值为：Orientation orientation。</td></tr></table>
			</div>
			<div id="freshEvent(const BEvent&)">
				<h3>virtual void freshEvent(const BEvent&amp; event);</h3><p>当内容布局需要调整时，将布局器的合适尺寸应用为区域尺寸。</p>
			</div>
		</div><p/>
	</body>
</html>